package cn.wolfcode.service;

import cn.wolfcode.common.web.Result;
import cn.wolfcode.domain.OrderInfo;
import cn.wolfcode.domain.SeckillProduct;
import cn.wolfcode.domain.SeckillProductVo;

import javax.servlet.http.HttpServletRequest;
import java.util.List;


public interface ISeckillProductService {
    /**
     * 聚合商品和秒杀商品的信息
     * @param time
     * @return
     */
    Result<List<SeckillProductVo>> queryCurrentlySeckillProduct(Integer time);

    /**
     * 根据时间分段查询视图对象
     * @param time
     * @return
     */
    List<SeckillProductVo> queryByTime(int time);

    /**
     * 根据seckillId和time查询视图对象
     * @param seckillId
     * @param time
     * @return
     */
    SeckillProductVo find(String seckillId, int time);

    /**
     *
     * @param time
     * @param seckillId
     * @param phone
     * @return
     */
    OrderInfo doSeckill(int time, Long seckillId, Long phone);

    /**
     * 获取秒杀商品的库存
     * @param seckillId
     * @return
     */
    int getStockCount(Long seckillId);

    /**
     * 根据时间段和秒杀货品id查询真实库存
     * @param seckillId
     * @return
     */
    int selectProductCount(Long seckillId);

    /**
     * 回补真实库存
     * @param seckillId
     */
    void incrCount(Long seckillId);
}
